//package com.starbaba.system.syscode.view;
//
//import java.io.IOException;
//import java.util.List;
//
//import org.apache.commons.lang.StringUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.beans.factory.annotation.Qualifier;
//
//import com.opensymphony.xwork2.Action;
//import com.starbaba.core.utils.PropertyParamMapBuilder;
//import com.starbaba.core.utils.Struts2Utils;
//import com.starbaba.core.utils.json.JsonUtils;
//import com.starbaba.core.web.sequence.Sequence;
//import com.starbaba.core.web.struts2.BaseAction;
//import com.starbaba.core.web.translate.TranslateVO;
//import com.starbaba.system.syscode.model.SyscodeVO;
//import com.starbaba.system.syscode.service.SyscodeService;
//
//@SuppressWarnings("serial")
//public class SyscodeAction extends BaseAction{
//	
//	private SyscodeService syscodeService;
//	
//	public SyscodeAction(){
//		this.voClass = SyscodeVO.class;
//		this.pkNameArray = new String[]{"id"};
//		this.setSaveLog(false);
//	}
//	
//	public String syscodemgr(){
//		return Action.SUCCESS;
//	}
//	
//	public String tree(){
//		try{
//			paramsMap = PropertyParamMapBuilder.buildFromHttpRequest(Struts2Utils.getRequest(), paramsMap);
//			SyscodeListVO listVO = new SyscodeListVO();
//			this.setParamsMapToTargetObject(paramsMap, listVO);
//			listVO.set_seq_kind("*");
//			listVO.setFindAll(true);
//			page = this.getService().doQuery(voClass, listVO);
//		}catch(Exception ex){
//			ex.printStackTrace();
//			this.addActionMessage(ex.getMessage());
//			return Action.ERROR;
//		}
//		return Action.SUCCESS;
//	}
//	
//	
//	public String typelist(){
//		try{
//			paramsMap = PropertyParamMapBuilder.buildFromHttpRequest(Struts2Utils.getRequest(), paramsMap);
//			this.setParamsMapToTargetObject(paramsMap, this.getEntityListVO());
//			SyscodeListVO listVO = (SyscodeListVO) this.getEntityListVO();
//			listVO.set_seq_kind("*");
//			page = this.getService().doQuery(voClass, this.getEntityListVO());
//		}catch(Exception ex){
//			ex.printStackTrace();
//			this.addActionMessage(ex.getMessage());
//			return Action.ERROR;
//		}
//		return Action.SUCCESS;
//	}
//	
//	public String typeadd(){
//		paramsMap.put("id", Sequence.getSequence());
//		paramsMap.put("kind", "*");
//		this.setIsEditAble(true);
//		this.setIsNew(true);
//		return Action.SUCCESS;
//	}
//	
//	public String typesave(){
//		return this.save();
//	}
//	
//	public String typedelete(){
//		return this.delete();
//	}
//	
//	public String typeedit(){
//		return this.edit();
//	}
//	
//	@Override
//	public void beforeList(){
//		SyscodeListVO listVO = (SyscodeListVO) this.getEntityListVO();
//		listVO.set_sne_kind("*");
//	}
//	
//	@Override
//	public void beforeAdd(){
//		try{
//			String _seq_type = (String) paramsMap.get("_seq_type");
//			if(StringUtils.isNotBlank(_seq_type)){
//				SyscodeVO syscodeVO = this.getSyscodeService().doFindSyscodeVOByTypeAndKind(_seq_type, "*");
//				syscodeVO.setKind("");
//				syscodeVO.setId(Sequence.getSequence());//新建对象需要重新定义主键
//				this.entityVO = syscodeVO;
//			}
//		}catch(Exception ex){
//			
//		}
//	}
//	
//	@Override
//	public void beforeSave() throws Exception{
//		SyscodeVO syscodeVO = (SyscodeVO) this.getEntityVO();
//		SyscodeVO orgVO = this.getSyscodeService().doFindSyscodeVOByTypeAndKind(syscodeVO.getType(), syscodeVO.getKind());
//		if(null != orgVO){
//			throw new Exception("已经存在业务参数定义");
//		}
//	}
//	
//	@Override
//	public void beforeUpdate() throws Exception{
//		SyscodeVO syscodeVO = (SyscodeVO) this.getEntityVO();
//		SyscodeVO orgVO = this.getSyscodeService().doFindSyscodeVOByTypeAndKind(syscodeVO.getType(), syscodeVO.getKind());
//		if(null != orgVO && orgVO.getId().longValue() != syscodeVO.getId().longValue()){
//			throw new Exception("已经存在业务参数定义");
//		}
//		String type = syscodeVO.getType();
//		String kind = syscodeVO.getKind();
//		/* 修改父记录情况 */
//		if("*".equals(kind)){
//			int count = this.getSyscodeService().doCountByType(type);
//			if(count > 1){
//				throw new Exception("已经存在子类参数定义,修改不成功");
//			}
//		}
//		
//
//		
//	}
//
//	/**
//	 * 
//	 * @return
//	 */
//	public String findSyscodeVOByType(){
//		try {
//			paramsMap = PropertyParamMapBuilder.buildFromHttpRequest(Struts2Utils.getRequest(), paramsMap);
//			String definition = (String) paramsMap.get("type");
//			definition = definition.replace("$", "");
//			List<TranslateVO> list = LifeConstant.getSysCodeTranslate(definition);
////			list = TranslateUtilsFactory.getInstance().getCollection(definition);
//			sendJsonMessage(JsonUtils.toJson(list, null, true, null, false));
//			return null;
//		} catch (Exception ex) {
//			ex.printStackTrace();
//			this.addActionMessage(ex.getMessage());
//			try {
//				sendJsonMessage(JsonUtils.toJson(null, null, true, null, false));
//			} catch (IOException e) {
//				ex.printStackTrace();
//			}
//			return null;
//		}
//	}
//	
//	public SyscodeService getSyscodeService() {
//		return syscodeService;
//	}
//	@Autowired @Qualifier("syscodeServiceImpl")
//	public void setSyscodeService(SyscodeService syscodeService) {
//		this.syscodeService = syscodeService;
//	}
//}
